package com.net.xpay.common.service.admin.rbac;

import com.net.xpay.common.domain.admin.rbac.Menu;
import com.net.xpay.common.model.admin.rbac.MenuModel;

import java.util.List;
import java.util.Map;

/**
 * 2019/6/4 15:39

 */
public interface MenuService {
    //构建2级菜单
    List<Menu> buildMenus(Long adminUserId, Boolean superAdmin);

    //构建2级菜单
    List<MenuModel> buildMenuModels(List<Menu> menus);

    List<Map<String,Object>> getMenuTree(List<Menu> menus);

    /**
     * Description:[获取菜单所有的信息]
     * @return com.net.xpay.core.model.MenuListModel
     * @author
     * @date 2020/11/16 10:45
     */
    List<Menu> listMenu();

    /**
     * Description:[删除菜单(目录,按钮)]
     *
     * @param id : 菜单id
     * @return boolean
     * @author
     * @date 2020/11/16 15:28
     */
    boolean deleteMenu(Long id);

    /**
     * Description:[获取菜单列表数据(不包含按钮)]
     *
     * @return java.util.List<rbac.admin.domain.common.com.net.xpay.Menu>
     * @author
     * @date 2020/11/16 17:40
     */
    List<Menu> listNoButtonMenuTree();

    /**
     * Description:[ 新增或修改菜单]
     * @param menu : 修改的菜单对象
     * @return java.lang.Boolean
     * @author
     * @date 2020/11/22 0022 13:24
     */
    Boolean saveOrUpdateMenu(Menu menu);

}
